]): Synthesize GDK_CONFIGURE events when the window position changes.
authorAnders Carlsson <andersca@imendio.com>
Tue, 21 Mar 2006 07:36:54 +0000 (07:36 +0000)
committerAnders Carlsson <andersca@src.gnome.org>
Tue, 21 Mar 2006 07:36:54 +0000 (07:36 +0000)
2006-03-21  Anders Carlsson  <andersca@imendio.com>

        * gdk/quartz/GdkQuartzWindow.c
        ([GdkQuartzWindow -windowDidMove:]): Synthesize GDK_CONFIGURE events
        when the window position changes.

ChangeLog
ChangeLog.pre-2-10
gdk/quartz/GdkQuartzWindow.c

index 47926b8cc46321982a62066b3ebe7dbfe597a80f..ad69dc54570429b7e8eb3bf452c7d15077ac22b7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-21  Anders Carlsson  <andersca@imendio.com>
+
+       * gdk/quartz/GdkQuartzWindow.c 
+       ([GdkQuartzWindow -windowDidMove:]): Synthesize GDK_CONFIGURE events
+       when the window position changes.
+
 2006-03-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkdnd.c (gtk_drag_get_cursor): Remove an unused variable.
index 47926b8cc46321982a62066b3ebe7dbfe597a80f..ad69dc54570429b7e8eb3bf452c7d15077ac22b7 100644 (file)
@@ -1,3 +1,9 @@
+2006-03-21  Anders Carlsson  <andersca@imendio.com>
+
+       * gdk/quartz/GdkQuartzWindow.c 
+       ([GdkQuartzWindow -windowDidMove:]): Synthesize GDK_CONFIGURE events
+       when the window position changes.
+
 2006-03-20  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkdnd.c (gtk_drag_get_cursor): Remove an unused variable.
index 1ca8f2650f3d8c475c451e7080fcc994a1c5c768..14918743e4bd6d9f2c2e828d796f9d78adfd16a3 100644 (file)
   _gdk_quartz_update_focus_window (window);
 }
 
+-(void)windowDidMove:(NSNotification *)aNotification
+{
+  NSRect content_rect = [self contentRectForFrameRect:[self frame]];
+  GdkWindow *window = [[self contentView] gdkWindow];
+  GdkWindowObject *private = (GdkWindowObject *)window;
+  GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (private->impl);
+  GdkEvent *event;
+
+  private->x = content_rect.origin.x;
+  private->y = _gdk_quartz_get_inverted_screen_y (content_rect.origin.y) - impl->height;
+
+  /* Synthesize a configure event */
+  event = gdk_event_new (GDK_CONFIGURE);
+  event->configure.window = g_object_ref (window);
+  event->configure.x = private->x;
+  event->configure.y = private->y;
+  event->configure.width = impl->width;
+  event->configure.height = impl->height;
+
+  _gdk_event_queue_append (gdk_display_get_default (), event);
+}
+
 -(void)windowDidResize:(NSNotification *)aNotification
 {
   NSRect content_rect = [self contentRectForFrameRect:[self frame]];